/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package servlets;

import Conexao.ConsultaBD;
import Conexao.HibernateUtil;
import Entidade.Usuario;
import java.io.IOException;
import java.io.PrintWriter;
import java.sql.SQLException;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.servlet.RequestDispatcher;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import org.omg.PortableInterceptor.SYSTEM_EXCEPTION;

/**
 *
 * @author Andre
 */
public class LoginServlet extends HttpServlet {
   
    /** 
     * Processes requests for both HTTP <code>GET</code> and <code>POST</code> methods.
     * @param request servlet request
     * @param response servlet response
     * @throws ServletException if a servlet-specific error occurs
     * @throws IOException if an I/O error occurs
     */
    protected void processRequest(HttpServletRequest request, HttpServletResponse response)
    throws ServletException, IOException, SQLException {
        
        response.setContentType("text/html;charset=UTF-8");
        PrintWriter out = response.getWriter();

        
        try {
            
         try {
            HibernateUtil.iniciar();
        } catch (Exception e) {
            System.out.println("Erro iniciando " + e.getMessage());
        }
            
          // VERIFICA NA BASE DE DADOS SE EXISTE USUARIO PARA REALIZAR LOGIN
            HttpSession sessao = request.getSession();

            if(!sessao.isNew()) {               
                
            Usuario usuario = (Usuario) ConsultaBD.SelecionarFrom("Usuario where nome='" + request.getParameter("nome") + "' and senha='" + request.getParameter("senha") + "'");
            
            if(usuario != null ){
                    
            sessao.setAttribute("logado", "true");
            sessao.setAttribute("nome", request.getParameter("nome"));
            response.sendRedirect("index.jsp");
            
            
            } else {
                
                RequestDispatcher rd;
                rd = request.getRequestDispatcher("login.jsp");
                rd.include(request, response);
                out.println("<script>");  
                out.println("alert(\"Erro no Login. Dados inválidos\");"); 
                out.println("</script>");

            }
            
            }

        } finally { 
            out.close();
        }
    } 

    // <editor-fold defaultstate="collapsed" desc="Métodos HttpServlet. Clique no sinal de + à esquerda para editar o código.">
    /** 
     * Handles the HTTP <code>GET</code> method.
     * @param request servlet request
     * @param response servlet response
     * @throws ServletException if a servlet-specific error occurs
     * @throws IOException if an I/O error occurs
     */
    @Override
    protected void doGet(HttpServletRequest request, HttpServletResponse response)
    throws ServletException, IOException {
        try {
            processRequest(request, response);
        } catch (SQLException ex) {
            Logger.getLogger(LoginServlet.class.getName()).log(Level.SEVERE, null, ex);
        }
    } 

    /** 
     * Handles the HTTP <code>POST</code> method.
     * @param request servlet request
     * @param response servlet response
     * @throws ServletException if a servlet-specific error occurs
     * @throws IOException if an I/O error occurs
     */
    @Override
    protected void doPost(HttpServletRequest request, HttpServletResponse response)
    throws ServletException, IOException {
        try {
            processRequest(request, response);
        } catch (SQLException ex) {
            Logger.getLogger(LoginServlet.class.getName()).log(Level.SEVERE, null, ex);
        }
    }

    /** 
     * Returns a short description of the servlet.
     * @return a String containing servlet description
     */
    @Override
    public String getServletInfo() {
        return "Short description";
    }// </editor-fold>

}
